public class Main {
    public static void main(String[] args) {
        //图书管理系统可以着手启动了
    }
    public static void main9(String[] args) {
        String str = "computer games";
        System.out.println(str.lastIndexOf("ter",8));
    }
    public static void main8(String[] args) {
        String str = "a cup of water";
        System.out.println(str.charAt(0));
    }
    public static void main7(String[] args) {
        String str1 = "ABC";
        String str2 = "abc";
        System.out.println(str1.compareToIgnoreCase(str2));
    }
    public static void main6(String[] args) {

        //字符串拆分
        //将字符串全部拆分 split(String regex)
        String str = "18848a656a11a22a4567";
        String[] strs = str.split("a");

        for (int i = 0; i < strs.length; i++) {
            System.out.println(strs[i]);
        }

        System.out.println("===============");

        //将字符串拆分为指定的组数 split(String regex; int limit)
        String[] strs1 = str.split("a",2);
        for (int i = 0; i < strs1.length; i++) {
            System.out.println(strs1[i]);
        }
    }
    public static void main5(String[] args) {
        //字符串替换
        //replaceAll 替换所有指定的字符串
        String str = "abbabbdbbdbbebbeen";
        System.out.println(str.replace("a"," this "));

        //replaceFirst 替换第一个指定的字符串
        System.out.println(str.replaceFirst("abb"," this "));

        //此处注意：字符串是不可修改的对象，所以此处是产生一个新的字符串，源字符串并无变动
    }
    public static void main4(String[] args) {
        //字符数组 与 字符串 互相转换
        //1：字符串转字符数组
        String str = "acquisition";
        char[] chars = str.toCharArray();

        for (int i = 0; i < chars.length; i++) {
            System.out.print(chars[i]+" ");
        }

        //计算字符串的长度  c==》strlen函数
        System.out.println(str.length());


        //2：字符数组转换为字符串
        String str2 = new String(chars);
        System.out.println(str2);


        //字符串格式化
        String str3 = String.format("%d年%d月%d日",2000,11,5);
        System.out.println(str3);
    }
    public static void main3(String[] args) {
        //字符串转化

        //1：数值转换字符串
        String str = String.valueOf(1234);
        System.out.println(str);

        String str1 = String.valueOf(12.34);
        System.out.println(str1);

        //2：字符串转数字
        String str2 = "1314";
        //字符串转数字，需要转换 什么类型就是用哪种类型的包装类
        //包装类中带有 parseInt等方法
        int data = Integer.parseInt(str2);
        System.out.println(data);

        String str3 = "12.34";
        double data1 = Double.parseDouble(str3);
        System.out.println(data1);

        //3：大小写替换
        //小写转大写 toUpperCase
        String str4 = "passionate";
        System.out.println(str4.toUpperCase());

        //大写转小写 toLowerCase
        String str5 = "The GreatWall";
        System.out.println(str5.toLowerCase());

    }
    public static void main2(String[] args) {
        //字符串查找
        //1：charAt 查找该数组中指定下标的字符
        String str = "happy new year";
        System.out.println(str.charAt(0));  //0下标的字符 输出h

        //2：indexOf 返回字符串 或数字 在该字符串中第一次出现的位置
        System.out.println(str.indexOf("new"));

        //3：indexOf（string str, int fromIndex） 从fromIndex处开始查找str
        System.out.println(str.indexOf("new",7));

        //4：lastIndex 从后往前找str，返回第一个str出现的位置
        System.out.println(str.lastIndexOf("ha",4));

        // lastIndex(String str, int fromIndex) 从fromIndex位置开始从后往前找
        System.out.println(str.lastIndexOf("e",11));
    }
    public static void main1(String[] args) {
        //System.out.println("Hello world!");

        /**
         * 今日任务：
         * 1：尝试使用String类各个方法，对其有初步的掌握
         * 2：做好String类的笔记
         * 3：着手图书管理系统的编写*/

        //字符串的构造
        //1:
        String str = "hello world";
        System.out.println(str);
        //2:
        String str1 = new String("hello world");
        System.out.println(str1);
        //3:
        //使用字符数组进行构造
        char[] chars = new char[]{'h','e','l','l','o',' ','w','o','r','l','d'};
        String str2 = new String(chars);
        System.out.println(str2);


        //String 对象的比较
        //String是一种引用数据类型，所以如果直接使用==对两个对象进行比较时，其实际比较的是引用对象的地址
        //但是在String类中提供了一些比较方法，如下

        //1：比较两个字符串是否相等==》.equals
        String str3 = "hello world";
        String str4 = "hello world";

        System.out.println(str3.equals(str4));

        //2：比较两个字符串的大小==》compareTo
        //在String类中实现了Comparable接口并重写了compareTo方法
        //使用compareTo，其会按照字典序进行比较，并根据大小关系返回正数，负数，零
        String str5 = "abc";
        String str6 = "ad";
        System.out.println(str5.compareTo(str6));

        //3：compareTo方法会进行大小写比较，而compareToIgnoreCase会忽视大小写比较

        String str7 = "abc";
        String str8 = "Abc";
        System.out.println(str7.compareToIgnoreCase(str8));
    }

}